-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Scala3 .tasty files #12529
Support Scala3 .tasty files #12529
Conversation
We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google. ℹ️ Googlers: Go here for more info. |
e9f5f75
to
600d552
Compare
cc @philwo |
Hey guys @philwo You should check this MR, it's really important |
cc @alandonovan |
Thank you! This definitely looks like a tasty PR. 😋 I think there are no issues with merging it, the only question is, is this important enough to be cherry-picked into Bazel 4.0 LTS (= will the lack of it be an issue for Scala users going forward?). |
I hope that 4.0 will include this patch and I'll continue to work on 3.0 support for rules_scala. |
Code change looks fine to me. I didn't realize we still used ijar. I wrote parts of that in grad school nearly 20 years ago! |
**ijar** tool support Kotlin modules by [not stripped out](088d8de) files in `META-INF/*.kotlin_module`. This PR add support for new Scala 3 (and Scala 2.13.4+) [TASTy](https://dotty.epfl.ch/docs/reference/metaprogramming/toc.html) format to have ability to use Scala 3 modules. Closes #12529. PiperOrigin-RevId: 346068234
**ijar** tool support Kotlin modules by [not stripped out](088d8de) files in `META-INF/*.kotlin_module`. This PR add support for new Scala 3 (and Scala 2.13.4+) [TASTy](https://dotty.epfl.ch/docs/reference/metaprogramming/toc.html) format to have ability to use Scala 3 modules. Closes #12529. PiperOrigin-RevId: 346068234
**ijar** tool support Kotlin modules by [not stripped out](088d8de) files in `META-INF/*.kotlin_module`. This PR add support for new Scala 3 (and Scala 2.13.4+) [TASTy](https://dotty.epfl.ch/docs/reference/metaprogramming/toc.html) format to have ability to use Scala 3 modules. Closes #12529. PiperOrigin-RevId: 346068234
**ijar** tool support Kotlin modules by [not stripped out](088d8de) files in `META-INF/*.kotlin_module`. This PR add support for new Scala 3 (and Scala 2.13.4+) [TASTy](https://dotty.epfl.ch/docs/reference/metaprogramming/toc.html) format to have ability to use Scala 3 modules. Closes #12529. PiperOrigin-RevId: 346068234
**ijar** tool support Kotlin modules by [not stripped out](bazelbuild@088d8de) files in `META-INF/*.kotlin_module`. This PR add support for new Scala 3 (and Scala 2.13.4+) [TASTy](https://dotty.epfl.ch/docs/reference/metaprogramming/toc.html) format to have ability to use Scala 3 modules. Closes bazelbuild#12529. PiperOrigin-RevId: 346068234
Currently producing `ijar` using Scala 3 produces the following warnings: ``` ijar: skipping unknown attribute: "TASTY". ``` TASTY is a Scala 3 specific ClassFile attribute and informs that for given `.class` file there is also emmited as `.tasty` file (these were handled in #12529). It can be consumed in the same way as currently handled `Scala` and `ScalaSig` attributes. Handling that should remove redundant warnings Here's example on how this attribute is emmited: https://github.com/scala/scala3/blob/91ef92159c628eaeab8311dc82bed7ed4fe03c63/compiler/src/dotty/tools/backend/jvm/CodeGen.scala#L92-L110 Closes #24165. PiperOrigin-RevId: 693863203 Change-Id: If811be3a725251b9c9db8ac2c92245fa58bdbfc8
ijar tool support Kotlin modules by not stripped out files in
META-INF/*.kotlin_module
.This PR add support for new Scala 3 (and Scala 2.13.4+) TASTy format to have ability to use Scala 3 modules.